package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生信息业务对象 student
 *
 * @author ruoyi
 * @date 2025-06-30
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class StudentBo extends BaseEntity {

    /**
     * 学生ID
     */
    @NotNull(message = "学生ID不能为空", groups = { EditGroup.class })
    private Long studentId;

    /**
     * 学号
     */
    @NotBlank(message = "学号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String studentNo;

    /**
     * 学生姓名
     */
    @NotBlank(message = "学生姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String studentName;

    /**
     * 性别（0男 1女）
     */
    @NotBlank(message = "性别（0男 1女）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gender;

    /**
     * 出生日期
     */
    @NotNull(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date birthday;

    /**
     * 班级ID
     */
    @NotNull(message = "班级ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long classId;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;

    /**
     * 邮箱
     */
    @NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
    private String email;

    /**
     * 住址
     */
    @NotBlank(message = "住址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 状态（0在校 1休学 2毕业）
     */
    @NotBlank(message = "状态（0在校 1休学 2毕业）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
